The invention relates generally to the field of data transfer devices for transferring data to and from a data processing system. The invention is specifically applicable to disk or tape controllers that transfer bursts of data to the system, and receive data, in bursts, from the system. The invention is also applicable to other transfer devices, such as would be used in scientific instruments or multiprocessing environments for transferring data rapidly between systems.
High speed data transfer units such as disk controllers normally perform a number of functions in transferring data between a data processing system and their external devices such as disk drives. The transfer unit must first connect to the system, receive commands from the system and manage transfers with the system. The transfer unit must also connect to the drive and manage transfers with the external devices. The management of transfers with the system, on the one hand, and with the external devices, on the other hand, are relatively independent.
In many prior systems, each unit that has data to be transferred to memory or that receives data from memory, is a DMA (direct memory access) device, that is, it may contact the memory itself. However, that requires substantial interfacing and control circuitry to allow the devices to engage in direct memory access. This increases the cost of the individual units and, hence, of the entire system, and it usually means that the central processing unit has reduced control over the system as a whole, as each unit is individually attempting to access memory.
Another possible arrangement is to have a number of units of the system connect directly through the central processing unit, and have it transfer data directly to or from memory. No arbitration would be needed, and the central processing unit would have more direct control over the system. Furthermore, all direct memory access functions would then be centralized in the central processing unit.
Finally, it is also desirable to simplify the programming of the data transfer unit by separating the port control commands that enable transfers between the transfer unit and the processor, and operational commands that enable transfers between the transfer unit and the external device. In the transfer unit according to the invention, the port control commands are derived from the processor's own microinstructions, while the operational commands, like data, are retrieved from memory.